This CLI exports stories from a Pivotal Tracker project and converts them to cards in a Trello board. It is a fork of Dave Perrett's pivotal-to-trello with a number of improvements for users.
The program is packaged as a Docker container.
- Obtain your API credentials from Trello and Pivotal Tracker.
Obtaining API credentials
The Pivotal Tracker token can be found at the bottom of your Pivotal profile page.
There are two methods for obtaining the Trello API key and token. The difference may be the age of the Trello account. If you visit https://trello.com/1/appKey/generate and are redirected to https://trello.com/app-key, then use Method 2. Otherwise, Method 1 is appropriate.
Method 1
- Login into Trello
- Visit https://trello.com/1/appKey/generate. Your 32-character application key will be listed in the first box.
- To obtain your Trello member token, visit the following URL, substuting your Trello application key for APP_KEY: https://trello.com/1/authorize?key=APP_KEY&name=Pivotal%20To%20Trello&response_type=token&scope=read,write
- Click the Allow button, and you will be presented with a 64-character token.
See the Trello documentation for more details.
Method 2
- Login into Trello
- Visit https://trello.com/power-ups/admin/
- Acknowledge developer terms
- Click "New" in Power-Ups and Integrations
- Fill in the form. Suggested values:
- Power-Up Name: Pivotal-to-Trello
- Workspace: The name of the workspace containing your target board
- Iframe connector URL: Skip
- Email: Your email
- Support Contact: Your email
- Author: Your name
- Click "Generate a new API key"
- Copy the API KEY
- Click generate a "Token"
- Click "Allow"
- Copy the Token
- Create a Trello Board that you will import into.
- Add members to your Trello board. E.g. if your Pivotal Tracker project has stories owned by F. Rogers and L. Burton, ensure those individuals create accounts on Trello and are members of your new board.
- Set environment variables for your credentials
export TRELLO_KEY=
export TRELLO_TOKEN=
export PIVOTAL_TOKEN=
Default
will:
- Clear all of the cards and lists from your chosen board.
- Create the following lists: Icebox, Backlog, Started, Finished, Delivered, Rejected, Accepted, Will Not Do
- For each Tracker story, create a card in the respective lists.
Run the container, passing in the default
flag:
docker run -i waciumawanjohi/pivotal-to-trello:latest import --trello-key $TRELLO_KEY --trello-token $TRELLO_TOKEN --pivotal-token $PIVOTAL_TOKEN --default
The program will ask you to:
- Identify the target Tracker Project and Trello Board
- Confirm deletion of the current lists and cards
- Map the Tracker Project Owners to Trello Members
Run without defaults
Running without default will not create any lists. Create your own desired lists in the Trello Board before running.
Run the container:
docker run -i waciumawanjohi/pivotal-to-trello:latest import --trello-key $TRELLO_KEY --trello-token $TRELLO_TOKEN --pivotal-token $PIVOTAL_TOKEN
The program will ask you to:
- Identify the target Tracker Project and Trello Board
- Identify which list stories in Accepted, Finished, etc. belong
- Choose label colors for different labels
- Confirm deletion of the current lists and cards
- Map the Tracker Persons to Trello Members
After all stories have been imported, the program will allow you to review existing cards that were not imported. You can choose to keep or delete these.
If your run is interrupted and you know the ID of your last imported story, you can run with the resume-at flag and the story ID:
docker run -i waciumawanjohi/pivotal-to-trello:latest import --trello-key $TRELLO_KEY --trello-token $TRELLO_TOKEN --pivotal-token $PIVOTAL_TOKEN resume-at 188000000
This project improves upon its base in the following ways:
- Created Trello cards have members assigned, corresponding to the Tracker story owners
- Cards are created in their story's current Tracker order (rather than in story creation order)
- Cards are created with the labels from the Tracker story
- Cards are created with a label for the story's points estimation
- Users can choose a default configuration. Does not require users to precreate lists or manually map them to story states
- Users can restart imports with
--resume-at
flag - Users are notified of cards present in the board that were not imported from Tracker
- Will update the Trello cards with new changes in the Tracker stories
- Progress bars display work done and estimated time remaining
This project is licensed under AGPL by Waciuma Wanjohi. It is a modification of an MIT licensed project by Dave Perrett.
Both licenses can be found in the License file.